package com.sitia.jd.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import com.sitia.common.annotation.Excel;
import com.sitia.common.core.domain.BaseEntity;

/**
 * 提现订单对象 cash_out_order
 * 
 * @author sitia
 * @date 2025-06-23
 */
@Data
@Accessors(chain =true)
public class CashOutOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId(type = IdType.ASSIGN_ID)
    private String orderId;

    /** 客户id */
    @Excel(name = "客户id")
    private String customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 京东账号 */
    @Excel(name = "京东账号")
    private String jdAccount;

    /** jd cookie */
    @Excel(name = "jd cookie")
    private String cookie;

    /** 商品链接 */
    @Excel(name = "商品链接")
    private String productUrl;

    /** 返利链接 */
    @Excel(name = "返利链接")
    private String rebateUrl;

    /** 购买商品名称 */
    @Excel(name = "购买商品名称")
    private String productName;

    /** 购买商品实付金额 */
    @Excel(name = "购买商品实付金额")
    private Long actualPayment;

    /** 售出商品金额 */
    @Excel(name = "售出商品金额")
    private BigDecimal saleAmount;

    /** 商品售出日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商品售出日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date saleDate;

    /** 收件的快递号 */
    @Excel(name = "收件的快递号")
    private String takeTrackingNum;

    /** 收件商品的快递名称 */
    @Excel(name = "收件商品的快递名称")
    private String takeExpressName;

    /** 收件商品的快递费 */
    @Excel(name = "收件商品的快递费")
    private BigDecimal takeShippingFee;

    /** 收货快递状态 */
    @Excel(name = "收货快递状态")
    private String receiptExpressStatus;

    /** 服务费 */
    @Excel(name = "服务费")
    private BigDecimal serviceFee;

    /** 售卖商品的快递号 */
    @Excel(name = "售卖商品的快递号")
    private String sellTrackingNum;

    /** 售卖商品的快递名称 */
    @Excel(name = "售卖商品的快递名称")
    private String sellExpressName;

    /** 售卖商品的快递费 */
    @Excel(name = "售卖商品的快递费")
    private String sellShippingFee;

    /** 售卖快递状态 */
    @Excel(name = "售卖快递状态")
    private String sellExpressStatus;

    /** 利润 */
    @Excel(name = "利润")
    private BigDecimal profit;

    /** 订单状态【已下单、快递寄出、已收商品、售卖商品、商品已售出、商品结算中、订单完成】 */
    @Excel(name = "订单状态【已下单、快递寄出、已收商品、售卖商品、商品已售出、商品结算中、订单完成】")
    private Integer orderStatus;

    /** 申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /** 订单归属人id【使用登录账户user_name】 */
    @Excel(name = "订单归属人id【使用登录账户user_name】")
    private String ownerId;

    /**
     * 订单归属人名称
     */
    @TableField(exist = false)
    private String ownerUserName;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTime;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新人 */
    @Excel(name = "更新人")
    private String updatedBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

}
